package be.groept.ace.cursusplanning.persistency;

/**
 * @author Gouke Leplat
 */

import be.groept.ace.cursusplanning.model.*;
import be.groept.ace.cursusplanning.model.containers.*;

public interface IPersistentieController {

	void setConnectionString (String connectionString);
	String getConnectionString();
	
	String getObjectKey(Persisteerbaar obj);
	Persisteerbaar getObjectIfExists(String objectidentifier);
	
	void addToDataContext(Persisteerbaar obj, String objectKey);
	void SubmitChangesMadeTo(Persisteerbaar obj);
	
	Cursussen getCursussen();
	Cursisten getCursisten();
	Inschrijvingen getInschrijvingen();
	Lectoren getLectoren();
	
	void loadEntireEntitySet() throws Exception;
	
	Cursist saveOrSwapCursist (Cursist cursist);
	Cursus saveOrSwapCursus (Cursus cursus);
	Inschrijving saveOrSwapInschrijving (Inschrijving inschrijving);
	Lector saveOrSwapLector (Lector lector);
	
	boolean containsKey (String objectKey);
	
}
